from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_login import LoginManager

app=Flask(__name__)

#加载配置文件内容
print("加载配置文件内容")
app.config.from_object('blog.setting')
app.config.from_envvar('FLASKR_SETTINGS',silent=True)

#创建数据库对象
print("创建数据库对象")
db = SQLAlchemy(app)

#只有在app对象之后声明，用于导入model否则无法创建表
print("只有在app对象之后声明，用于导入model否则无法创建表")
from blog.model.User import User
from blog.model.Category import Category


print("只有在app对象之后声明，用于导入view模块")
from blog.control import blog_manage


#登陆管理
print("登陆管理")
login_manager = LoginManager()
login_manager.init_app(app)
print(login_manager)
# 如果没有登录则重定向到该蓝图的视图函数
login_manager.login_view = "login"
# 对登录用户进行监视,最高等级
login_manager.session_protection = "strong"
login_manager.login_message = u"用户未登录，请先登录。"
app.secret_key = '123456'

@login_manager.user_loader
def load_user(id):
    return User.get(id)

#使用__name__ == '__main__'是 Python 的惯用法，确保直接执行此脚本时才
#启动服务器，若其他程序调用该脚本可能父级程序会启动不同的服务器
# if __name__ == '__main__':
#     app.run(debug=True)
